package org.springblade.modules.admin.service;

import org.springblade.modules.admin.entity.MaintainMalfunctionLog;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.admin.vo.WorkTrackVO;
import org.springblade.modules.admin.vo.plan.MaintainLogStatusVo;

import java.util.List;

public interface MaintainMalfunctionLogService extends IService<MaintainMalfunctionLog>{

	/**
	 * 插入工单记录
	 * @param planId 工单id
	 * @param typeName 状态描述
	 * @param planStatus 当前工单状态
	 */
	void insertWorkLog(Long planId, String typeName, Integer planStatus);

	/**
	 * 插入工单记录
	 * @param planId 工单id
	 * @param typeName 状态描述
	 * @param planStatus 当前工单状态
	 * @param ext 额外数据（json)
	 */
	void insertWorkLog(Long planId, String typeName, Integer planStatus, String ext);

	/**
	 * 插入工单记录
	 * @param planId 工单id
	 * @param typeName 状态描述
	 * @param planStatus 当前工单状态
	 * @param ext 额外数据（json)
	 * @param executorId 执行人id
	 * @param executor 执行人姓名
	 */
	void insertWorkLog(Long planId, String typeName, Integer planStatus, String ext, Long executorId, String executor);

	/**
	 * 插入工单记录
	 * @param planId 工单id
	 * @param typeName 状态描述
	 * @param planStatus 当前工单状态
	 * @param ext 额外数据（json)
	 * @param tenantId 对应租户id
	 */
	void insertWorkLog(Long planId, String typeName, int planStatus, String ext, String tenantId);

	/**
	 * 任务追踪记录
	 * @param planId
	 * @return
	 */
    WorkTrackVO selectWorkTracks(Long planId);


	/**
	 * 获取每个工单的状态和时间
	 * @return 数据集
	 */
	List<MaintainLogStatusVo> logStatusList(Long planId);


	/**
	 * 错误数据处理-只用一次，后期可以删除
	 * @return 数据集
	 */
	String initList();
}
